﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAL
{
    public class DALMethod
    {
        #region 数据库连接字符串
        /*Sqlserver数据库连接方式有多种，这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库。
        这里data source 是指数据库地址和端口号，需要注意的是地址和端口号之间是用","进行分隔的；initial catalog 是数据库名字 ；user id和pwd分别指用户名和密码。
        */
        string strConect= @"Data Source=DESKTOP-0GFGOHF\MSSQLSERVER15;Initial Catalog=TTBMS;User ID=sa;Password=123";
        #endregion
        #region 查询数据缓存
        public DataSet QueryDataSet(String sql,SqlParameter[] param)
        {
            DataSet ds = new DataSet();
            /*数据库建立连接
         SqlConnection sqlConnection = new SqlConnection(this.connString);
         sqlConnection.Open();
         */
            using (SqlConnection conn=new SqlConnection(strConect))
            {
                //打开数据库连接
                conn.Open();
                //表示用于填充 System.Data.DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接
                SqlDataAdapter da = new SqlDataAdapter(sql,conn);
                //指定存储过程名称
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
                //获取存储语句参数数组
                da.SelectCommand.Parameters.AddRange(param);
                //在ds 里面添加行
                da.Fill(ds);
                //关闭与数据库的连接。
                conn.Close();

            }
            return ds;
        }
        #endregion
        #region 新增、修改、删除
        public int UpdateData(String sql, SqlParameter[] param)
        {
            int count = 0;
            using (SqlConnection conn=new SqlConnection(strConect))
            {
                //打开数据库连接
                conn.Open();
                //执行存储过程
                SqlCommand cmd = new SqlCommand(sql,conn);
                //获取存储过程名称
                cmd.CommandType = CommandType.StoredProcedure;
                //添加序列化数组参数
                cmd.Parameters.AddRange(param);
                //数据库插入更新操作(行数)
                count = cmd.ExecuteNonQuery();
                //关闭数据库连接
                conn.Close();
            }
            return count;
        }
        #endregion
    }
}
